package org.icosagon.datastore;

/**
 * This interface is used to connect to some sort of 'data store' used
 * to store the template data for this application. Template data is
 * defined as, how to create items, spells and so on.
 */
public interface DataStore {
    /**
     * Connects this object to some sort of data store. The implementor will
     * need to use the <code>location</code> string accordingly for their
     * implementation.
     * @param location - This parameter may be a jdbc url or the location
     * of a file on the filesystem. Implementors choice.
     */
    public void connect(String location);

    /**
     * Returns the object incharge of retrieving and writing <code>Spell</code>
     * objects to the <code>DataStore</code>.
     * @return
     */
    public SpellManager getSpellManager();
}